﻿using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Channels;

namespace Telerik.Sitefinity.Services.Migration
{
	[ServiceContract]
	public interface IMigrationExportService
	{
		[OperationContract]
		string Ping();

		[OperationContract(ReplyAction = "GetMigrationStatistics")]
		Message GetMigrationStatistics();

		[OperationContract(ReplyAction = "GetRolesResponse")]
		Message GetRoles();

		[OperationContract(ReplyAction = "GetSecurityDefinitionsResponse")]
		Message GetSecurityDefinitions();

		[OperationContract(ReplyAction = "GetUsersListResponse")]
		Message GetUsersList();

		[OperationContract(ReplyAction = "GetSingleUserResponse")]
		Message GetSingleUser(Message userDefinitionParam);

		[OperationContract(ReplyAction = "GetContentProvidersResponse")]
		Message GetContentProviders();

		[OperationContract(ReplyAction = "GetContentForProviderResponse")]
		Message GetContentForProvider(Message providerParam);

		[OperationContract(ReplyAction = "GetGenericContentListResponse")]
		Message GetGenericContentList();

		[OperationContract(ReplyAction = "GetSingleGenericContentResponse")]
		Message GetSingleGenericContent(Message genericContentDefinitionParam);

		[OperationContract(ReplyAction = "GetNewsListResponse")]
		Message GetNewsList();

		[OperationContract(ReplyAction = "GetSingleNewsResponse")]
		Message GetSingleNews(Message newsDefinitionParam);

		[OperationContract(ReplyAction = "GetBlogsListResponse")]
		Message GetBlogsList();

		[OperationContract(ReplyAction = "GetSingleBlogResponse")]
		Message GetSingleBlog(Message blogDefinitionParam);

		[OperationContract(ReplyAction = "GetEventsListResponse")]
		Message GetEventsList();

		[OperationContract(ReplyAction = "GetSingleEventResponse")]
		Message GetSingleEvent(Message eventDefinitionParam);

		[OperationContract(ReplyAction = "GetLibrariesListResponse")]
		Message GetLibrariesList();

		[OperationContract(ReplyAction = "GetSingleLibraryResponse")]
		Message GetSingleLibrary(Message libraryDefinitionParam);

		[OperationContract(ReplyAction = "GetListsResponse")]
		Message GetLists();

		[OperationContract(ReplyAction = "GetPollsResponse")]
		Message GetPolls();

		[OperationContract(ReplyAction = "GetForumsResponse")]
		Message GetForums();

		[OperationContract(ReplyAction = "GetMasterPagesListResponse")]
		Message GetMasterPagesList();

		[OperationContract(ReplyAction = "GetSingleMasterPageResponse")]
		Message GetSingleMasterPage(Message masterPageDefinitionParam);

		[OperationContract(ReplyAction = "GetThemesResponse")]
		Message GetThemes();

		[OperationContract(ReplyAction = "GetTemplatesListResponse")]
		Message GetTemplatesList();

		[OperationContract(ReplyAction = "GetSingleTemplateResponse")]
		Message GetSingleTemplate(Message templateDefinitionParam);

		[OperationContract(ReplyAction = "GetPagesListResponse")]
		Message GetPagesList();

		[OperationContract(ReplyAction = "GetSinglePageResponse")]
		Message GetSinglePage(Message pageDefinitionParam);
	}
}
